using System.Collections.Generic;

namespace OracleInternal.SqlAndPlsqlParser.LocalParsing
{
	internal abstract class OracleLpFromClauseBase : OracleLpStatementElement
	{
		internal override OracleLpStatementElementType ElementType => OracleLpStatementElementType.FromClause;

		public abstract List<OracleLpStatementDataContainer> Terms
		{
			get;
		}

		public OracleLpFromClauseBase(OracleLpStatementElement parent)
			: base(parent)
		{
		}

		public abstract OracleLpColumnDescriptor FindColumn(OracleLpName schema, OracleLpName parent, OracleLpName column);

		public abstract IOracleLpColumnDescriptorContainer FindColumnContainer(OracleLpName schema, OracleLpName parent);

		public abstract OracleLpQteNamedObject FindNamedObject(OracleLpName schema, OracleLpName parent);
	}
}
